﻿layui
		.use(
				[ 'form', 'layer', 'jquery', 'laypage', 'table' ],
				function() {
					var form = layui.form, table = layui.table, layer = parent.layer === undefined ? layui.layer
							: parent.layer, laypage = layui.laypage, $ = layui.jquery;

					// 数据表格
					table.render({
						id : 'OrderdetailsList',
						elem : '#OrderdetailsList',
						url : ctx + '/orderdetails/getOrderdetailsList' // 数据接口
						,
						cellMinWidth : 200,
						limit : 40// 每页默认数
						,
						limits : [ 10, 20, 30, 40 ],
						cols : [ [ // 表头
						{
							field : 'theorder_id',
							title : '订单编号',
							sort : true,
							align : 'center',
							width : 120
						}, {
							field : 'address',
							title : '收货地址',
							sort: true, 
							align : 'center'
						}, {
							field : 'name',
							title : '收货人姓名',
							sort: true, 
							align : 'center'
						}, {
							field : 'phone',
							title : '收货人电话',
							sort: true, 
							align : 'center'
						}, {
							field : 'username',
							title : '用户名',
							sort: true, 
							align : 'center'
						}, {
							field : 'product_name',
							title : '商品名称',
							sort: true, 
							align : 'center'
						}, {
							field : 'product_color',
							title : '规格名称',
							sort: true, 
							align : 'center'
						}, {
							field : 'product_quantity',
							title : '购买数量',
							sort: true, 
							align : 'center'
						},{
							field : 'order_money',
							title : '价格',
							sort: true, 
							align : 'center'
						},{
							field : 'theorder_note',
							title : '订单备注',
							sort: true, 
							align : 'center'
						}, {
							field : 'freight',
							title : '运费',
							sort: true, 
							align : 'center'
						}, {
							field : 'theorder_state',
							title : '订单状态',
							sort: true, 
							align : 'center'
						},{
							field : 'theorder_time',
							title : '订单创建时间',
							sort: true, 
							templet : '<div>{{ formatTime(d.theorder_time,"yyyy-MM-dd hh:mm:ss")}}</div>' ,
							align : 'center'
						},{
							field : 'theorder_paymenttime',
							title : '订单支付时间',
							sort: true, 
							templet : '<div>{{ formatTime(d.theorder_paymenttime,"yyyy-MM-dd hh:mm:ss")}}</div>' ,
							align : 'center'
						},{
							field : 'theorder_deliverytime',
							title : '订单完成时间',
							sort: true, 
							templet : '<div>{{ formatTime(d.theorder_deliverytime,"yyyy-MM-dd hh:mm:ss")}}</div>' ,
							align : 'center'
						},{
							field : 'theorder_money',
							title : '订单总金额',
							sort: true, 
							align : 'center'
						},{
							title : '操作',
							toolbar : '#barDemo',
							align : 'center',
							width:180,
							sort: true, 
							fixed: 'right'
						} ] ],
						page : true,
						 done : function(res, curr, count) {
						        merge(res);
						 }
					// 开启分页
					});
					 
					// 监听工具条
					table.on('tool(OrderdetailsList)', function(obj) {
						var data = obj.data;
						if (obj.event === 'del') {
							if (data.roleName == '超级管理员') {
								layer.msg("不允许操作此角色！", {
									icon : 5
								});
								return;
							}
							layer.confirm('真的删除行么', function(index) {
								$.ajax({
									url : ctx
											+ '/product/deleteProductById/?id='
											+ data.productId,
									type : "get",
									success : function(d) {
										if (d.code == 0) {
											// obj.del();
											table.reload('OrderdetailsList', {})
										} else {
											layer.msg("权限不足，联系超管！", {
												icon : 5
											});
										}
									}
								})
								layer.close(index);
							});
						} else if (obj.event === 'edit') {
							layer.open({
								type : 2,
								title : "编辑产品",
								area : [ '380px', '600px' ],
								content : ctx + "/orderdetails/editOrderdetails/"
										+ data.orderdetails_id,
							})
						}
					});
					$(".search_btn").click(function() {
						var type = $(this).data('type');
						active[type] ? active[type].call(this) : '';
					})
					active = {
						search : function() {
							var theorder_id = $('#theorder_id');
							var theorder_state = $('#theorder_state');
						

							table.reload('OrderdetailsList', {
								page : {
									curr : 1
								},
								where : {
									theorder_id : theorder_id.val(),
									theorder_state : theorder_state.val(),
									
								}
							});
						}
					};

					// 添加角色
					$(".productAdd_btn").click(function() {
						var index = layui.layer.open({
							title : "添加产品",
							type : 2,
							content : ctx + "/product/addProduct",
							area : [ '380px', '550px' ]
						})
						// 改变窗口大小时，重置弹窗的高度，防止超出可视区域（如F12调出debug的操作）
						$(window).resize(function() {
							layui.layer.full(index);
						})
					})
function merge(res) {
                var data = res.data;
                var mergeIndex = 0; //需要进行合并的初始行数
                var nextMergeIndex = 1; //进行比较的那一行
                var mark = 1; //mark是计算每次需要合并的格子数
                var flag = true;//每一次重新开始比较的标识
                var columsName = ['theorder_id', 'address', 'name', 'phone', 'username','theorder_note','freight','theorder_state','theorder_time','theorder_paymenttime','theorder_deliverytime','theorder_money','barDemo'];//需要合并的列名称
                var columsIndex = [0, 1, 2, 3, 4,9,10,11,12,13,14,15,16];//需要合并的列索引值
                var trArr = $(".layui-table-body>.layui-table").find("tr"); //所有行
                do {
                    var markFlag = true;//是否进行判断合并
                    do {//循环判断是否可以合并，只有不能合并时才跳出
                        for (var k = 0; k < columsName.length; k++) {
                            if (data[mergeIndex][columsName[k]] === data[nextMergeIndex][columsName[k]]) { //后一行的值与前一行的值做比较，相同就需要合并
                                markFlag = true;
                            } else {
                                markFlag = false;
                                break;
                            }
                        }
                        if (markFlag) {
                            mark += 1;//需要覆盖的行数加1
                            nextMergeIndex += 1;//比较的行数加1
                            //判断是否到最后一条数据
                            if (nextMergeIndex >= data.length) {
                                markFlag = false;
                            } else {
                                markFlag = true;
                            }
                        }
                    } while (markFlag);
                    if (mark > 1){//只有存在合并操作时才合并
                        for (var j = 0; j < columsIndex.length; j++) { //这里循环所有要合并的列
                            var tdPreArr = trArr.eq(mergeIndex).find("td").eq(columsIndex[j]); //获取默认行的列
                            tdPreArr.each(function () { //相同列的第一列增加rowspan属性
                                $(this).attr("rowspan", mark);//合并等于 mark 数值的行
                            });
                            //存在多条要隐藏的行单元格，每条都要隐藏
                            for (var x = mergeIndex+1; x < nextMergeIndex; x++) { //这里循环所有要隐藏的列
                                var tdCurArr = trArr.eq(x).find("td").eq(columsIndex[j]); //获取下一行的当前列
                                tdCurArr.each(function () { //当前行隐藏
                                    $(this).css("display", "none");
                                });
                            }
                        }
                    }
                    mergeIndex = nextMergeIndex;
                    mark = 1;
                    nextMergeIndex += 1;
                    if (nextMergeIndex <= data.length) {
                        flag = true;
                    } else {
                        flag = false;
                    }
                } while (flag);
            }
				})
				// 格式化时间
function formatTime(datetime, fmt) {
	if (datetime == null || datetime == 0) {
		return "";
	}
	if (parseInt(datetime) == datetime) {
		if (datetime.length == 10) {
			datetime = parseInt(datetime) * 1000;
		} else if (datetime.length == 13) {
			datetime = parseInt(datetime);
		}
	}
	datetime = new Date(datetime);
	var o = {
		"M+" : datetime.getMonth() + 1, // 月份
		"d+" : datetime.getDate(), // 日
		"h+" : datetime.getHours(), // 小时
		"m+" : datetime.getMinutes(), // 分
		"s+" : datetime.getSeconds(), // 秒
		"q+" : Math.floor((datetime.getMonth() + 3) / 3), // 季度
		"S" : datetime.getMilliseconds()
	// 毫秒
	};
	if (/(y+)/.test(fmt))
		fmt = fmt.replace(RegExp.$1, (datetime.getFullYear() + "")
				.substr(4 - RegExp.$1.length));
	for ( var k in o)
		if (new RegExp("(" + k + ")").test(fmt))
			fmt = fmt.replace(RegExp.$1,
					(RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k])
							.substr(("" + o[k]).length)));
	return fmt;
}


